package com.huoyun.common.service;

import java.util.List;

import com.huoyun.base.bean.Page;
import com.huoyun.cargo.model.ContactCarModel;
import com.huoyun.common.bean.BidInfo;
import com.huoyun.common.bean.BidInfoItem;
import com.huoyun.common.service.evt.GetBidInfoByCarIdEvt;
import com.huoyun.common.service.evt.GetBidInfoByGoodsIdEvt;
import com.huoyun.common.service.evt.GetBidInfoItemEvt;
import com.huoyun.order.bean.Order;

public interface BidInfoService {
	public void saveBidInfo(BidInfo bidInfo);
	public List<BidInfo> getEntryByGoodsId(long goodsId);
	public List<BidInfo> getEntryByCarId(long carId);
	public int getCountByGoodsId(long goodsId);
	public int getCountByCarId(long carId);

	public BidInfo getEntryById(long bidId);
	/**
	 * 获取联系该批货物的车辆列表
	 * @param goodsId
	 * @param isSuccess
	 * @return
	 */
	public List<ContactCarModel> getContactCarsByGoodsId(long goodsId);
	public Order GenerateOrderByBidId(long bidId);
	public void updateSuccess(long bidId,int success);
	public List<ContactCarModel> getSelectedCar(long goodsId,int isSuccess);

	
	public ContactCarModel getContactCarByBidId(long bidId);
	public List<Order> GenerateOrdersByGoodsId(long goodsId);
	public List<BidInfo> getBidInfoListByUserId(long userId);
	
	
	/**
	 * 分页版 根据用户状态和用户名查询BidInfoItem
	 * @param getBidInfoItemEvt
	 * @return
	 * @author 杨阳
	 */
	public Page queryBidInfoItemByStatusForUser(GetBidInfoItemEvt getBidInfoItemEvt);
	
	public List<BidInfoItem> getBidInfoItemByStatusForUser(long user, int status);
	
	public void deleteBidInfoById(long bidInfoId);
	
	public void updateBidInfoByBidInfo(BidInfo bidInfo);
	
	/**
	 * 根据车辆id查询应标数
	 * @param getBidInfoByCarIdEvt 查询参数
	 * @return 应标总数
	 */
	public int getBidCountByCarId(GetBidInfoByCarIdEvt getBidInfoByCarIdEvt);
	
    /**
     * 根据车辆id查询应标列表
     * @param getBidInfoByCarIdEvt 查询参数
     * @return 应标列表
     */
	public Page getBidInfoByCarId(GetBidInfoByCarIdEvt getBidInfoByCarIdEvt);
	
	/**
	 * 根据货物id查询应标数
	 * @param getBidInfoByGoodsIdEvt 查询参数
	 * @return 应标数
	 */
	public int getBidCountByGoodsId(GetBidInfoByGoodsIdEvt getBidInfoByGoodsIdEvt);
	
	/**
	 * 根据货物id查询应标列表
	 * @param getBidInfoByGoodsIdEvt 查询参数
	 * @return 应标列表
	 */
	public Page getBidInfoByGoodsId(GetBidInfoByGoodsIdEvt getBidInfoByGoodsIdEvt);
	
	
}
